Standard imaging utilized either vector halftoning or multiple scalar halftoning to convert contone images into binary pixels of multiple colors. In 3D printing, the halftoning must be performed at multiple (possibly many) layers. One natural extension is to create multiple screens independently and apply a unique one at every layer. The resultant halftoned layered object can possess a larger than desired color variation. A more complicated alternative to avoid the variation is a computationally expensive offline optimization that tries to jointly optimize the screens at multiple layers. This, however, takes significant computing power and requires the number of screens to be known a priori.
The process for creating images for 3D printed objects has significant commonality with producing images on paper (2D) images. Both require the conversion of a contone (i.e., more than 1 bit per pixel per color) image to a collection of cyan, magenta, yellow, and black (CMYK) ink droplets. The major difference is that in the standard image on paper case each location of the image is converted to a CMYK binary recipe while in the 3D printing case there are multiple ink planes. Each plane, however, can have at most only one droplet of CMY or K. The creation of multiple planes can be implemented by diffusing the desired surface image into the interior object layers. The conversion of such planes to binary format can occur by limiting the CMYK at each pixel to 100% area coverage (C+M+Y+K<=100) and then applying standard vector halftoning. [1-4]
In order to perform the vector halftoning, each plane must have a screen (i.e., threshold array) associated with it. Typically the screen designed has a stochastic nature to it; it is not a standard clustered dot design. Given that techniques exist to create stochastic screens for 2D images it is natural to extend that methodology to 3D by creating unique screens for each layer using known methods.
If each layer is independently designed and uniformly distributed (thresholds 1 to N are equally likely), then in the 3D case it is easy to determine the resultant variation that can be expected. For any given gray level, the distribution of the number of ink pixels at a given location (pile height) will have a probability distribution that is described by the binomial distribution indicated in equation (1):p(k)=nCkak(1−a)n−k  (1)
In equation (1) above, p(k) represents the probability that the n layers of 3D image has k ink droplets of a given color at a given x,y location and a is the probability of any given droplet being an ink droplet of the given color (e.g., if the contone gray level is 127 in an 8 bit system {max contone level of 255}, a=127/255) and nCk, (“n choose k”): the number of ways to choose k objects from a set of n.
In the binomial distribution the following statistics are well known:mean(μ)=n a std dev(s)={n a(1−a)}0.5  (2)In the formulation of equation (2) above, n represents the number of layers. If the number of layers is sufficiently large (e.g. n>=10), then the binomial distribution can be approximated by a Gaussian distribution with the statistical properties of equation (2). For example, for a 3D object with 10 layers and a 50% area coverage will have pile heights with distribution as in graph 10 of FIG. 1. FIG. 1 illustrates a prior art graph 10 depicting data indicative of ink drop height (x-axis) versus probability (y-axis) and the distribution of ink drop height (or pile height) of a 50% halftone when rendered with independent screen layers.
Clearly it is desirable to create a screen set that is uniformly distributed in each layer (i.e., each layer is a viable 2D screen) yet for all contone gray levels has a smaller spread in pile height distribution function. This will result in a smoother appearing surface image.